package com.leetcode.string;

/**
 * @author Dennis Li
 * @date 2020/7/29 9:29
 */
public class LongestPalindrome_409 {


    public int longestPalindrome(String s) {
        int[] chars = new int[58];
        for (char ch : s.toCharArray()) {
            chars[ch - 'A']++;
        }
        int sum = 0;
        boolean oddAlready = false;
        for (int i = 0; i < 58; i++) {
            if ((chars[i] & 1) == 0) {
                sum += chars[i];
            } else {
                // 如果是奇数，那么可以加一个，也只能加一个
                if (!oddAlready) {
                    sum += 1;
                    oddAlready = true;
                }
                // 其他的奇数，需要减一
                sum += chars[i] - 1;
            }
        }
        return sum;
    }

}
